<?php
/**
 * mailSend.php
 * 
 * (C) 2009, tetsuya.odaka(EzoGP).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* 
 * mailの送信
 * 
 * 一度ファイルをアップロードをしてそれを添付します。
 * アップロードは作業領域（/tmp）に行い、送信後に削除します。
 * 日本語ファイル名もOK（みたい）です。
 * 
 * author	；t.odaka
 * date		;2005/10/16
 * 
 * modified	;	2009/5/14 t.odaka refactoring. 
 * 				2009/5/25	t.odaka	不要なコメント行を削除
 * 
*/
	// 前準備
	include("../Myznala/myHeader.inc.php");
	
	require_once("../Myznala/MyConverter.class.php");
	
	/*
	 * 変数定義
	 */
	// 遷移先のテンプレート名
	$myTemplate="../examples-dwoo/templates/mailSend.tpl";
	
	
	// POST(GET)パラメータをサニタイズして配列に入れる。
	$cObj = new MyConverter();
	$reqParm = $cObj->getRequestParameters();
	
	/* 
	 * 入力エラーチェック（内部関数の呼び出し）	
	*/
	$myErrArray=validate();
	if(count($myErrArray)>0){
		// エラーがあれば、入力画面にもどす。
		/* テンプレートの引数をセットします */
		$myTplData = array(
			'myLoginUser'=>$myLoginUser,
			'myAppName'=>'examples-dwoo',
			'myPageTitle'=>'Mail_Send',
		
			'myErrArray'=>$myErrArray
		);

		// エラーログの出力(end)
		$myLog->err("Mail_Send: end");
		// 後処理
		include("../Myznala/myFooter.inc.php");
				
		return; 
	}
	
	/* 
	 * メイルを送る処理	
	*/
	// メイル送信プログラムの呼び出し
	require_once('../Myznala/SendMailBean.class.php');
	
	$to = $reqParm['mailto']; 	//あて先
	$cc = $reqParm['mailcc']; 	//CC
	$bcc = $reqParm['mailbcc']; //BCC
	$subject = $reqParm['subject']; //件名

	// メイル送信プログラムの処理
	$mailObject = new SendMailBean();
	$mailObject->setTo($to);
	$mailObject->setCc($cc);
	$mailObject->setBcc($bcc);
	$mailObject->setSubject($subject);
	$mailObject->setMessage($reqParm['contents']);

	// 添付ファイルの処理
	$app_path=APP_PATH;
	$save_dir=$app_path."/tmp/";
	$filename=$_FILES["upfile"]["name"];
	
	if(move_uploaded_file($_FILES["upfile"]["tmp_name"],$save_dir.$filename)){
		$mailObject->setAttach($save_dir.$filename);
	} else {
		$mailObject->setAttach(null);
	}
	
	// メイルを送る。
	$mailObject->mailsend();
	
	// アップロード（一時）ファイル削除
	if($mailObject->getAttach()!=null){
		unlink($save_dir.$filename); 
	}
		
	// 正常終了メッセージの編集
	require_once('../Myznala/MsgBean.class.php');
	$myMsgArray=array();
	$msgObj=new MsgBean();
	$msgObj->setMessage("メイルを送信しました。");
	$myMsgArray[0]=$msgObj;
	
	/* テンプレートの引数をセットします */
	$myTplData = array(
			'myLoginUser'=>$myLoginUser,
			'myAppName'=>'examples-dwoo',
			'myPageTitle'=>'Mail_Send',

			'myMsgArray'=>$myMsgArray
	);

	// 後処理
	include("../Myznala/myFooter.inc.php");
		
	return;
	
	/* 
	 * 入力チェックを行うための内部関数
	*/
	function validate(){
		require_once('../Myznala/ErrorBean.class.php');
		$myErrArray=array();
		if($_POST['mailto']=="" || $_POST['mailto']==null){
			$errorObj=new ErrorBean();
			$errorObj->setField("To");
			$errorObj->setMessage("入力をおねがいします。");
			$myErrArray[0]=$errorObj;
		}
		return $myErrArray;
	}
?>